﻿/*********************************************************************
 *
 *                             NOTICE
 *               COPYRIGHT (c) 2012 Panoscopix Software, Inc.
 *                UNPUBLISHED - ALL RIGHTS RESERVED
 * 
 *      This program is confidential, proprietary, and a trade
 *   secret of Panoscopix Software, Inc. The receipt or possession of
 *     this program does not convey any rights to reproduce or
 *      disclose its contents, or to manufacture, use, or sell
 *       anything that it may describe, in whole or in part, 
 *   without the specific written consent of Panoscopix Software, Inc.
 *
 * Interface for the Command Stack Manager, which holds two
 * LIFO queues, namely, a done queue (for Commands that have
 * been executed or redone) and an undone queue (for Commands that
 * have been undone).
 * 
 *******************************************************************/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace FileSystem
{
    interface ICommandStackManager
    {
        /// <returns>The stack for Commands that have been executed (or redone).</returns>
        ICommandStack done();

        /// <returns>The stack for Commands that have been undone.</returns>
        ICommandStack undone();

        /// <summary>
        /// Write a description string for this object (and embedded objects) using context.
        /// </summary>
        /// <param name="context">PrintContext (indent level) for the description.</param>
        /// <returns>String describing this command (including state), using context.</returns>
        String describe(IPrintContext context);
    }
}
